CC := g++
CCFLAGS := -std=c++20 -fexec-charset=GBK
INCLUDE := .
LIB_DIR := lib
LIB_OBJS := $(patsubst lib/%.cpp, lib/%.o, $(wildcard $(LIB_DIR)/*.cpp))

all: a.exe

a.exe: main.o $(LIB_OBJS)
	$(CC) $(CCFLAGS) $^ -o a.exe

main.o: main.cpp
	$(CC) $(CCFLAGS) -c main.cpp -o main.o -I $(INCLUDE)

$(LIB_DIR)/%.o: $(LIB_DIR)/%.cpp
	$(CC) $(CCFLAGS) -c $< -o $@ -I $(INCLUDE)

clean:
	rm a.exe main.o $(LIB_OBJS)
